/*
 * Eleccion.h
 *
 *  Created on: Oct 10, 2011
 *      Author: Belen
 */

#ifndef ELECCION_H_
#define ELECCION_H_

#include <vector>
#include <sstream>
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <string.h>
#include <stdlib.h>

#include "../Utils/Serializador.h"

using namespace std;

class Eleccion {
public:
	//serializacion
	char* pack();
	unsigned long packLen();
	bool unpack(char* buffer, unsigned long bufferLen);

	Eleccion();
	
	void setFecha(unsigned long fecha);
	unsigned long getFecha();

	unsigned long getCargoPrincipalId();
	void setCargoPrincipalId(unsigned long id);

	void removeAllDistritos();
	
	/*
	 * Para obtener un unico distrito de acuerdo a la posicion en el vector de distritos. 
	 */
	unsigned long getDistrito(unsigned long posicion);
	
	vector<unsigned long> getDistritos();
	void addDistrito(unsigned long distritoId);
	void setDistritosIds(vector<unsigned long> ids);
	
	/*
	 * Se arma el id concatenando la fecha y el cargo. 
	 */
	unsigned long getId();
	
	virtual ~Eleccion();
	
private:
	unsigned long fecha;
	unsigned long cargoPrincipalId;
	vector<unsigned long> distritoIds;
};

#endif /* ELECCION_H_ */
